package mysql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/*
* 一.使用JDBC链接 数据库 Mysql
*    1.maven 仓库下载对应mysql版本的jar包
*    2.mysql服务器必须启动【WampServer集成】
*    3.加载数据库驱动【mysql】
*    4.获取数据库链接【mysql-用户名 root 最高权限，密码 空】
* 二、连接成功
*    1.创建表person  给3个字段  id、name、address
*    2.静态sql增加
* */
public class MysqlJDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
//        3.加载驱动【注册驱动程序】
//        JDBC 规范标准 要求：链接对应数据库必须先注册‘驱动程序’
//        告诉JDBC 现在连接什么种类的数据库
//        Class.forName() 通过反射加载对应数据库版本驱动类
//        对应数据库固定注册写法：Mysql
        Class.forName("com.mysql.jdbc.Driver");
//        4.获取mysql数据库连接
        String username="root";  //mysql数据库用户名
        String password="";      //mysql数据库密码
//        url链接地址：mysql固定结构
        //jdbc:mysql://ip地址：端口号/库名？characterEncoding=UTF-8
        String url="jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8";
//      DriverManager  工具类 ，功能获取数据库链接：url、用户名密码
//      getConnection方法，链接不同版本数据库的方法，链接成功，返回Connection
        Connection conn =
                DriverManager.getConnection(url,username,password);
        System.out.println("测试链接是否成功"+conn);

        //5.编写静态添加sql操作【字符串】
        //String sql="insert into person values(2,'王氏为','黑龙江省哈尔滨')";
        //练习：增加3条数据、删除一条数据、修改一条数据
        //String sql="delete from person where id=2";
        String sql="update person set name='书记' where id=1";

        //6.执行静态sql【增加操作】
        // conn.createStatement();  执行数据库中增删改操作，返回Statement对
        //Statement对象执行静态sql
        //6.1具备执行数据库中增删改操作
        Statement st=conn.createStatement();
        //6.2执行静态sql:executeUpdate(静态sql)增删改操作，返回值int类型
        //int类型帮助记录成功条数
        int rows=st.executeUpdate(sql);
        System.out.println("增加"+rows+"记录");
        //7.关闭资源
        st.close();  conn.close();

    }
}
/*
*    昨天重点
*    1.JDBC规范 链接各种数据库  数据库闭源
*    2.maven仓库下载对应jar包    ---Java---面向对象【类】
*      mysql版本 5.5   mysqljdbc
*      oracle版本  10g  ojdbc8
*    3.编程步骤--JDBC规范
*    3.1加载驱动，jdbc链接数据库，每个数据库都有自己驱动
*    Class.forName("com.mysql.jdbc.Driver") 反射技术【固定】
*   Mysql版本5.X   驱动：com.mysql.jdbc.Driver
*   Mysql版本8.X   驱动：com.mysql.cj.jdbc.Driver
*
*   Javaa-->JDBC规范-->Driver接口:驱动接口，各种数据库
*   JDBC承认写对应驱动接口【所有数据库承认接口，确定什么数据库】
*    3.2获取链接，Mysql数据库：用户名、密码、url用字符串接收
*   String Username="root";    ---Java写法
    String password="";
    url--->Mysql链接路径---固定结构
*   jdbc：mysql：//localhost：3306/mi?characterEncoding=UTF-8
*   协议：子协议：//IP地址
*                 本机
*                 127.0.0.1
*    Java获取链接--通过DriverManager接口：工具类，可以连接各种数据库
*   Connection con=DriverManager. getConnection(url, username,password);
     具体链接方案给方法：getConnectionO地址、用户名、密码确定无误
     返回一个对象Connection对象【Java与对应数据库链接成功】
     * 打印Connection对象--打印对象--链接成功
     * 4.执行sql：JDBC只能做CRUD增删改查--Mysql创建表、库
     * 4.1Mysql   --->使用库--->创建表
     * 4.2Java    --->CUD增删改操作
     * 4.3java    --->确定数据库连接成功[con]-->调取执行增删改查操作
     *            --->返回Statement对象：执行静态sql
     * 代码：Statement st=con.createStatement（）；
     * 4.4 Java--->Statement对象提供方法：executeUpdate();
               --->此方法执行sql：增、删、改操作---成功 几 条记录
     *代码：int rows=st.executeUpdate(sql);
     * 打桩：打印成功多少条记录
5.关闭资源【倒置法：Statement-执行sql对象、Connection--链接数据库成功
 */